package com.bookocean.controller.dto;

import lombok.Data;

import java.time.LocalDateTime;

/**
 * 收藏数据传输对象
 * 
 * @author BookOcean
 * @since 2024-01-01
 */
@Data
public class FavoriteDto {
    
    /**
     * 收藏ID
     */
    private Long favoriteId;
    
    /**
     * 目标ID（书摘ID/小说ID/章节ID）
     */
    private Long targetId;
    
    /**
     * 目标类型（1：书摘，2：小说，3：章节）
     */
    private Integer targetType;
    
    /**
     * 收藏时间
     */
    private LocalDateTime createdAt;
    
    /**
     * 收藏时间（格式化字符串，用于前端显示）
     */
    private String favoriteTime;
    
    // ========== 目标内容信息 ==========
    
    /**
     * 目标标题（书摘内容标题/小说标题/章节标题）
     */
    private String targetTitle;
    
    /**
     * 目标内容（书摘内容/小说描述/章节内容）
     */
    private String targetContent;
    
    /**
     * 目标图片URL（书摘配图/小说封面/章节配图）
     */
    private String targetImageUrl;
    
    // ========== 关联的书籍信息 ==========
    
    /**
     * 书籍ID（书摘关联的书籍ID）
     */
    private Long bookId;
    
    /**
     * 书籍标题
     */
    private String bookTitle;
    
    /**
     * 书籍作者
     */
    private String bookAuthor;
    
    /**
     * 书籍封面URL
     */
    private String bookCoverUrl;
    
    // ========== 创建者信息 ==========
    
    /**
     * 创建者用户ID
     */
    private Long creatorId;
    
    /**
     * 创建者昵称
     */
    private String creatorNickname;
    
    /**
     * 创建者头像URL
     */
    private String creatorAvatarUrl;
    
    // ========== 统计信息 ==========
    
    /**
     * 点赞数
     */
    private Integer likeCount;
    
    /**
     * 评论数
     */
    private Integer commentCount;
    
    /**
     * 收藏数
     */
    private Integer favoriteCount;
}
